package com.sailfish.springbootdemo.service.db7;

import com.sailfish.springbootdemo.pojo.Result;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

public interface TaskCenterService {

    Result getTaskFlow(String data);

    Result operateTaskFlow(String data);

    Result returnToPreNode(String data);

    Result getAllTask(String data);

    Result getMyTask(String data);

    Result deleteTaskData(String data);

    Result deleteTask(String data);

    @Transactional(transactionManager = "MysqlTransactionManager7")
    Result deleteCompManufacturer(String data);

    @Transactional(transactionManager = "MysqlTransactionManager7")
    Result cancelTask(String data);

    Result authorizeApprover(String data);

    Result getPartInfoFromPDM(String data);

    Result getPartInfoFormFlow(String data);

    Result getFlowRecords(String data);

    Result getFlowTemplateInfoByFlowNo(String data);

    Result getFlowTemplateInfoByFlowNo2(String data);

    Result getCompPkgInfoByCompPkg(String data);

    Result getPkgByCompCode(String data);

    Result deleteKnowledgeBaseByKey(String data);


    Result getKnowledgeBaseNotice(String data);

    Result updateKnowledgeBaseNotice(String data);

    Result getDesignLogicByKnowledgeBaseKey(String data);

    @Scheduled(cron = "0 0 * * * ?") // 每小时整点 执行一次检查是否要计算直通率
    void scheduledCreateVplFlow();

    @Scheduled(cron = "0 0 * * * ?") // 每小时整点 执行一次检查是否要计算直通率
    void scheduledSendDataToVpl();

    @Scheduled(cron = "0 0 * * * ?") // 每小时整点 执行一次检查是否要计算直通率
    @Transactional(transactionManager = "MysqlTransactionManager7")
    void scheduledUpdatePkgName();

    @Scheduled(cron = "0 0 * * * ?") // 每小时整点
    void scheduleKnowledgeBaseEmail();

    Result uploadKnowledgeBaseData(MultipartFile zipFile, String type);
}
